/**
 * 预览本地图片
 */
jQuery.fn.extend({
    previewImage: function (opts) {
        var _self = this,
            _this = $(this);
        opts = jQuery.extend({
            Img: "ImgPr",
            ///Width: 100,
            //Height: 100,
            // ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],
            Callback: function () {}
        }, opts || {});
        _self.getObjectURL = function (file) {
            var url = null;
            if (window.createObjectURL != undefined) {
                url = window.createObjectURL(file);
            } else if (window.URL != undefined) {
                url = window.URL.createObjectURL(file);
            } else if (window.webkitURL != undefined) {
                url = window.webkitURL.createObjectURL(file);
            }
            return url;
        };
        _this.change(function () {
            if (this.value) {
            	/*
                if (!RegExp("\.(" + opts.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
                    alert("选择文件错误,图片类型必须是" + opts.ImgType.join("，") + "中的一种");
                    this.value = "";
                    return false;
                }*/
                if (navigator.userAgent.indexOf('MSIE')) {
                    try {
                        $("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]));
                    } catch (e) {
                        var src = "";
                        var obj = $("#" + opts.Img);
                        var div = obj.parent("div")[0];
                        _self.select();
                        if (top != self) {
                            window.parent.document.body.focus();
                        } else {
                            _self.blur();
                        }
                        src = document.selection.createRange().text;
                        document.selection.empty();
                        obj.hide();
                        //alert(2);
                        
                        obj.parent("div").css({
                            'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)'
                            	//,
                            //'width': opts.Width + 'px',
                            //'height': opts.Height + 'px'
                        });
                        div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src;
                    }
                } else {
                    $("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]));
                }
                opts.Callback();
            }
        })
    }
});

var jcrop_api;
var coverPath = "";

var jcrop_api = null;
$(function() {
	initCutImage();
	$("#crop_upload_file").previewImage({ Img: "crop_preview"});
	$("#crop_upload_file").previewImage({ Img: "coverPathImage"});
});
function initCutImage() {
	if (newsinfoId != 'null') {
		$("#pics").load(listPicsUrl + "?newsinfoId=" + newsinfoId);
	} else {
		$("#pics").load(listPicsUrl + "?picTempPath=" + picTempPath);
	}
	// var
	// coverUrl='${ctx}/path/newsinfo/initNewsCover?id='+newsinfoId+'&coverPath=<%=newsinfo.getCoverPath()%>';
	// $("#coverPath").load(coverUrl);
	// 记得放在jQuery(window).load(...)内调用，否则Jcrop无法正确初始化
	initJcrop();
	$("#crop_submit").click(
			function() {
				var cutCoverData = {
					"newId" : newsinfoId,
					"width" : Math.round($("#w").val()),
					"height" : Math.round($("#h").val()),
					"px_1" : Math.round($("#x_start").val()),
					"py_1" : Math.round($("#y_start").val()),
					"px_2" : Math.round($("#x_end").val()),
					"py_2" : Math.round($("#y_end").val()),
					"coverPath" : coverPath
				};
				if ($("#x_start").val() != "") {
					$.post(cutPicsUrl + "?rand =" + Math.random(),
							cutCoverData, function(result) {
								if (result.state == 'Success') {
									initJcrop();
									jcrop_api.setImage(realPath
											+ result.content, function() {
										this.setOptions({
											bgOpacity : 1
										});
										coverPath = result.content;
										$("#crop_preview").attr("src",
												realPath + result.content);
										$("#coverPathImage").attr("src",
												realPath + result.content);
									});
									bootbox.alert("<h4>操作成功！</h4>", function() {

									});
								} else {
									bootbox.alert("<h4>操作失败,原因："
											+ result.content + "</h4>",
											function() {
												$('.modal-backdrop').remove();
											});
								}
							});
				} else {
					bootbox.alert("<h4>请先剪切图片再上传！</h4>", function() {
					});
				}
			});
	// 设置宽高比
	$("#aspectRatioSelect").change(function(e) {
		var selectValue = $(this).children("option:selected").val();
		jcrop_api.setOptions({
			aspectRatio : selectValue
		});
		jcrop_api.focus();
	});
	$("#crop_upload").click(function() {
		ajaxFileUpload();
	});
}
// 初始化剪切图片的插件
function initJcrop() {
	if (jcrop_api == null || jcrop_api == undefined) {
		$("#coverPathImage").Jcrop({
			aspectRatio : 1.5,
			onChange : showCoords,
			onSelect : showCoords
		}, function() {
			jcrop_api = this;
		});
	}
}
// 简单的事件处理程序，响应自onChange,onSelect事件，按照上面的Jcrop调用
function showCoords(obj) {
	$("#x_start").val(obj.x);
	$("#y_start").val(obj.y);
	$("#x_end").val(obj.x2);
	$("#y_end").val(obj.y2);
	$("#w").val(obj.w);
	$("#h").val(obj.h);
	if (parseInt(obj.w) > 0) {
		// 计算预览区域图片缩放的比例，通过计算显示区域的宽度(与高度)与剪裁的宽度(与高度)之比得到
		var rx = $("#preview_box").width() / obj.w;
		var ry = $("#preview_box").height() / obj.h;
		// 通过比例值控制图片的样式与显示
		$("#crop_preview").css({
			// 预览图片宽度为计算比例值与原图片宽度的乘积
			width : Math.round(rx * $("#coverPathImage").width()) + "px",
			// 预览图片高度为计算比例值与原图片高度的乘积
			height : Math.round(rx * $("#coverPathImage").height()) + "px",
			marginLeft : "-" + Math.round(rx * obj.x) + "px",
			marginTop : "-" + Math.round(ry * obj.y) + "px"
		});
	}
}
function ajaxFileUpload() {
	$.ajaxFileUpload({
		url : realPath + '/path/newsinfo/uploadCover?newId=' + newsinfoId, // 用于文件上传的服务器端请求地址
		secureuri : false, // 一般设置为false
		fileElementId : 'crop_upload_file', // 文件上传空间的id属性 <input type="file"
											// id="file" name="file" />
		dataType : 'json', // 返回值类型 一般设置为json
		success : function(data, status) // 服务器成功响应处理函数
		{
			initJcrop();
			jcrop_api.setImage(realPath + data.content, function() {
				this.setOptions({
					bgOpacity : 1
				});
				coverPath = data.content;
				$("#crop_preview").attr("src", realPath + data.content);
				$("#coverPathImage").attr("src", realPath + data.content);
			});
		},
		error : function(data, status, e)// 服务器响应失败处理函数
		{
			// bootbox.alert("<h4>操作失败,原因：" + data.content + "</h4>",
			// function(){});
		}
	})
	return false;
}
function noImage(t) {
	t.src = realPath + "/zenithsun/news/mobile/images/Default-bg270x180.png";
	t.onerror = null;
}
function noImage750(t) {
	t.src = realPath + "/zenithsun/news/mobile/images/default-bg750x500.png";
	t.onerror = null;
}